package com.zh.quartz.jobs;

import org.quartz.DisallowConcurrentExecution;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;


import java.time.LocalDateTime;

/**
 * @author :fjw
 * @description:TODO
 * @date :2020/11/14 20:12
 */

/**
 * Job中的任务有可能并发执行，
 * 例如任务的执行时间过长，而每次触发的时间间隔太短，
 * 则会导致任务会被并发执行。如果是并发执行，
 * 就需要一个数据库锁去避免一个数据被多次处理。
 */
@DisallowConcurrentExecution
public class HelloJob implements Job {
	@Override
	public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
		System.out.println("hello,quartz，正在执行任务");
		System.out.println(jobExecutionContext.getJobDetail().getJobDataMap().get("name"));
		System.out.println(jobExecutionContext.getJobDetail().getJobDataMap().get("age"));
		System.out.println(jobExecutionContext.getTrigger().getJobDataMap().get("orderNo"));
		System.out.println("定时任务执行完成,当前时间："+ LocalDateTime.now());
	}
}
